Computing solutions or applications (e.g., business applications including enterprise resource planning (ERP), enterprise content management (ECM), business process management (BPM) and product lifecycle management applications, etc.) are commonly installed on “backend” computer systems that deal with databases and have data processing components. Each backend computer system's infrastructure may consist of one or more physical machines, virtual machines, central processing units, data storage devices, disk drives and other resources, distributed over diverse locations or nodes connected by a computer network or the Internet. Some business applications may be interactive. Such business applications, for example, may have a user interface on a “frontend” client device (e.g., laptop computer, desktop computer, smartphone, personal or private digital assistant, tablets, notebook computer, etc.) through which users (e.g., business users) can query, modify or input data (data stored, e.g., in business databases) and view results instantaneously. The users may also run analytics and reports instantaneously. Some business applications may be run in batch mode i.e. they may be set up to run (e.g., to update databases) based on a predetermined event/time and the users do not need to initiate them or monitor them.
Users on client computing devices can connect to a backend computer system (via the Internet or other computer networks) to remotely interact with the business applications and databases hosted on the backend computer system. The client computing devices can be “online” or “offline.” The terms “online” and “offline” may have specific meanings in regard to computer technology and telecommunications in which “online” indicates a state of connectivity, while “offline” indicates a disconnected state. Users may interactively prepare or modify data (including business objects such as data input forms, purchase orders, invoices, etc.) for consumption or processing by the business application when connected online to the backend computer system. Conversely, users may prepare new data or modify data (including business objects such as data input forms, purchase orders, invoices, etc.) locally on the client computing devices when offline, and later, when online, upload or transmit the new data or modified data to the backend computer system for consumption or processing by the business application.
Consideration is now being given to systems and method for synchronizing data on backend computer systems, which host business applications, and data on frontend client computing devices, which operate or interact with the business applications in either online or offline modes.